package com.ktgj.pay.domain;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serializable;
import java.util.Date;


public class MoInvoice implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 会员Id
	 */
	private String JSJID;
	/**
	 * 发票ID
	 */
	private Long invoiceID;
	/**
	 * 开票申请来源(1网页版CRM, 2金色平台CRM,  11金色世纪安卓App,  12金色世纪IOS, 13空铁管家安卓,  14空铁管家IOS)
	 */
	private int sourceAppID;
	/**
	 * 订单 --业务线订单号
	 */
	private String orderNum;
	/**
	 * 子订单号，逗号隔开，没有子订单时填写大订单号
	 */
	private String subOrders;
	/**
	 * 开票状态：开票状态 (0 未开票 1 已预约  2 审核中 3 已开票)，4冲红，5作废
	 */
	private int state;
	/**
	 * 发票开具类型，0纸质发票，1电子发票
	 */
	private int type;
	/**
	 * 发票种类： 0：专用发票，2：普通发票，3定额发票
	 */
	private int sort;
	/**
	 * 购方抬头
	 */
	private String title;
	/**
	 * 购方税号
	 */
	private String taxNo;
	/**
	 * 购方地址
	 */
	private String address;
	/**
	 * 购方银行名称
	 */
	private String bankName;
	/**
	 * 购方银行账号
	 */
	private String bankAccount;
	/**
	 * 购方电话
	 */
	private String phone;
	/**
	 * 发票备注
	 */
	private String remark;
	/**
	 * 发票PDF路径
	 */
	private String imgurl;
	/**
	 * 开票人
	 */
	private String drawer;
	/**
	 * 复核人
	 */
	private String reviewer;
	/**
	 * 收款人
	 */
	private String payee;
	/**
	 * 原发票代码(红字发票必填)
	 */
	private String originalInvoiceCode;
	/**
	 * 原发票号码(红字发票必填)
	 */
	private String originalInvoiceNo;
	/**
	 * 销方名称
	 */
	private String sellerTitle;
	/**
	 * 销方税号
	 */
	private String sellerTaxNo;
	/**
	 * 销方地址
	 */
	private String sellerAddress;
	/**
	 * 销方银行账号
	 */
	private String sellerBankAccount;
	/**
	 * 销方电话
	 */
	private String sellerPhone;
	/**
	 * 业务线
	 */
	private int sourceWay;
	/**
	 * 商品名称
	 */
	private String goodsName;
	/**
	 * 规格型号
	 */
	private String model;
	/**
	 * 计量单位
	 */
	private String unit;
	/**
	 * 数量
	 */
	private int qty;
	/**
	 * 单价
	 */
	private Double price;
	/**
	 * 含税单价
	 */
	private Double taxPrice;
	/**
	 * 不含税金额
	 */
	private Double amount;
	/**
	 * 含税金额
	 */
	private Double taxAmount;
	/**
	 * 税额
	 */
	private Double tax;
	/**
	 * 税率
	 */
	private Double taxRate;
	/**
	 * 税收分类编码
	 */
	private String taxCode;
	/**
	 * 扣除额
	 */
	private String taxDeduction;
	/**
	 * 创建时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") 
	private Date createTime;
	/**
	 * 最后修改时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
	private Date updateTime;
	/**
	 * 计划开票时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
	private Date scheduledTime;
	/**
	 * 实际开票时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
	private Date actualTime;
	/**
	 * 此订单是否包含行程单 1含 2不含
	 */
	private int haveItinerary;
	public Long getInvoiceID() {
		return invoiceID;
	}
	public void setInvoiceID(Long invoiceID) {
		this.invoiceID = invoiceID;
	}
	public String getSubOrders() {
		return subOrders;
	}
	public void setSubOrders(String subOrders) {
		this.subOrders = subOrders;
	}
	public int getState() {
		return state;
	}
	public void setState(int state) {
		this.state = state;
	}
	public int getType() {
		return type;
	}
	public void setType(int type) {
		this.type = type;
	}
	public int getSort() {
		return sort;
	}
	public void setSort(int sort) {
		this.sort = sort;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getTaxNo() {
		return taxNo;
	}
	public void setTaxNo(String taxNo) {
		this.taxNo = taxNo;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getBankAccount() {
		return bankAccount;
	}
	public void setBankAccount(String bankAccount) {
		this.bankAccount = bankAccount;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public String getRemark() {
		return remark;
	}
	public void setRemark(String remark) {
		this.remark = remark;
	}
	public String getDrawer() {
		return drawer;
	}
	public void setDrawer(String drawer) {
		this.drawer = drawer;
	}
	public String getReviewer() {
		return reviewer;
	}
	public void setReviewer(String reviewer) {
		this.reviewer = reviewer;
	}
	public String getPayee() {
		return payee;
	}
	public void setPayee(String payee) {
		this.payee = payee;
	}
	public String getOriginalInvoiceCode() {
		return originalInvoiceCode;
	}
	public void setOriginalInvoiceCode(String originalInvoiceCode) {
		this.originalInvoiceCode = originalInvoiceCode;
	}
	public String getOriginalInvoiceNo() {
		return originalInvoiceNo;
	}
	public void setOriginalInvoiceNo(String originalInvoiceNo) {
		this.originalInvoiceNo = originalInvoiceNo;
	}
	public String getSellerTitle() {
		return sellerTitle;
	}
	public void setSellerTitle(String sellerTitle) {
		this.sellerTitle = sellerTitle;
	}
	public String getSellerTaxNo() {
		return sellerTaxNo;
	}
	public void setSellerTaxNo(String sellerTaxNo) {
		this.sellerTaxNo = sellerTaxNo;
	}
	public String getSellerAddress() {
		return sellerAddress;
	}
	public void setSellerAddress(String sellerAddress) {
		this.sellerAddress = sellerAddress;
	}
	public String getSellerBankAccount() {
		return sellerBankAccount;
	}
	public void setSellerBankAccount(String sellerBankAccount) {
		this.sellerBankAccount = sellerBankAccount;
	}
	public String getSellerPhone() {
		return sellerPhone;
	}
	public void setSellerPhone(String sellerPhone) {
		this.sellerPhone = sellerPhone;
	}
	public int getSourceWay() {
		return sourceWay;
	}
	public void setSourceWay(int sourceWay) {
		this.sourceWay = sourceWay;
	}
	public String getGoodsName() {
		return goodsName;
	}
	public void setGoodsName(String goodsName) {
		this.goodsName = goodsName;
	}
	public String getModel() {
		return model;
	}
	public void setModel(String model) {
		this.model = model;
	}
	public String getUnit() {
		return unit;
	}
	public void setUnit(String unit) {
		this.unit = unit;
	}
	public int getQty() {
		return qty;
	}
	public void setQty(int qty) {
		this.qty = qty;
	}
	public Double getPrice() {
		return price;
	}
	public void setPrice(Double price) {
		this.price = price;
	}
	public Double getTaxPrice() {
		return taxPrice;
	}
	public void setTaxPrice(Double taxPrice) {
		this.taxPrice = taxPrice;
	}
	public Double getAmount() {
		return amount;
	}
	public void setAmount(Double amount) {
		this.amount = amount;
	}
	public Double getTaxAmount() {
		return taxAmount;
	}
	public void setTaxAmount(Double taxAmount) {
		this.taxAmount = taxAmount;
	}
	public Double getTax() {
		return tax;
	}
	public void setTax(Double tax) {
		this.tax = tax;
	}
	public Double getTaxRate() {
		return taxRate;
	}
	public void setTaxRate(Double taxRate) {
		this.taxRate = taxRate;
	}
	public String getTaxCode() {
		return taxCode;
	}
	public void setTaxCode(String taxCode) {
		this.taxCode = taxCode;
	}
	public String getTaxDeduction() {
		return taxDeduction;
	}
	public void setTaxDeduction(String taxDeduction) {
		this.taxDeduction = taxDeduction;
	}
	public Date getCreateTime() {
		return createTime;
	}
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	public Date getUpdateTime() {
		return updateTime;
	}
	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}
	public Date getScheduledTime() {
		return scheduledTime;
	}
	public void setScheduledTime(Date scheduledTime) {
		this.scheduledTime = scheduledTime;
	}
	public Date getActualTime() {
		return actualTime;
	}
	public void setActualTime(Date actualTime) {
		this.actualTime = actualTime;
	}
	public String getImgurl() {
		return imgurl;
	}
	public void setImgurl(String imgurl) {
		this.imgurl = imgurl;
	}
	public int getHaveItinerary() {
		return haveItinerary;
	}
	public void setHaveItinerary(int haveItinerary) {
		this.haveItinerary = haveItinerary;
	}
	public String getJSJID() {
		return JSJID;
	}
	public void setJSJID(String jSJID) {
		JSJID = jSJID;
	}
	public String getOrderNum() {
		return orderNum;
	}
	public void setOrderNum(String orderNum) {
		this.orderNum = orderNum;
	}
	public int getSourceAppID() {
		return sourceAppID;
	}
	public void setSourceAppID(int sourceAppID) {
		this.sourceAppID = sourceAppID;
	}
	public String getBankName() {
		return bankName;
	}
	public void setBankName(String bankName) {
		this.bankName = bankName;
	}
	public MoInvoice() {
		super();
	}
	public MoInvoice(String jSJID, Long invoiceID, int sourceAppID, String orderNum, String subOrders, int state,
                     int type, int sort, String title, String taxNo, String address, String bankName, String bankAccount,
                     String phone, String remark, String imgurl, String drawer, String reviewer, String payee,
                     String originalInvoiceCode, String originalInvoiceNo, String sellerTitle, String sellerTaxNo,
                     String sellerAddress, String sellerBankAccount, String sellerPhone, int sourceWay, String goodsName,
                     String model, String unit, int qty, Double price, Double taxPrice, Double amount, Double taxAmount,
                     Double tax, Double taxRate, String taxCode, String taxDeduction, Date createTime, Date updateTime,
                     Date scheduledTime, Date actualTime, int haveItinerary) {
		super();
		JSJID = jSJID;
		this.invoiceID = invoiceID;
		this.sourceAppID = sourceAppID;
		this.orderNum = orderNum;
		this.subOrders = subOrders;
		this.state = state;
		this.type = type;
		this.sort = sort;
		this.title = title;
		this.taxNo = taxNo;
		this.address = address;
		this.bankName = bankName;
		this.bankAccount = bankAccount;
		this.phone = phone;
		this.remark = remark;
		this.imgurl = imgurl;
		this.drawer = drawer;
		this.reviewer = reviewer;
		this.payee = payee;
		this.originalInvoiceCode = originalInvoiceCode;
		this.originalInvoiceNo = originalInvoiceNo;
		this.sellerTitle = sellerTitle;
		this.sellerTaxNo = sellerTaxNo;
		this.sellerAddress = sellerAddress;
		this.sellerBankAccount = sellerBankAccount;
		this.sellerPhone = sellerPhone;
		this.sourceWay = sourceWay;
		this.goodsName = goodsName;
		this.model = model;
		this.unit = unit;
		this.qty = qty;
		this.price = price;
		this.taxPrice = taxPrice;
		this.amount = amount;
		this.taxAmount = taxAmount;
		this.tax = tax;
		this.taxRate = taxRate;
		this.taxCode = taxCode;
		this.taxDeduction = taxDeduction;
		this.createTime = createTime;
		this.updateTime = updateTime;
		this.scheduledTime = scheduledTime;
		this.actualTime = actualTime;
		this.haveItinerary = haveItinerary;
	}
	@Override
	public String toString() {
		return "MoInvoice [JSJID=" + JSJID + ", invoiceID=" + invoiceID + ", sourceAppID=" + sourceAppID + ", orderNum="
				+ orderNum + ", subOrders=" + subOrders + ", state=" + state + ", type=" + type + ", sort=" + sort
				+ ", title=" + title + ", taxNo=" + taxNo + ", address=" + address + ", bankName=" + bankName
				+ ", bankAccount=" + bankAccount + ", phone=" + phone + ", remark=" + remark + ", imgurl=" + imgurl
				+ ", drawer=" + drawer + ", reviewer=" + reviewer + ", payee=" + payee + ", originalInvoiceCode="
				+ originalInvoiceCode + ", originalInvoiceNo=" + originalInvoiceNo + ", sellerTitle=" + sellerTitle
				+ ", sellerTaxNo=" + sellerTaxNo + ", sellerAddress=" + sellerAddress + ", sellerBankAccount="
				+ sellerBankAccount + ", sellerPhone=" + sellerPhone + ", sourceWay=" + sourceWay + ", goodsName="
				+ goodsName + ", model=" + model + ", unit=" + unit + ", qty=" + qty + ", price=" + price
				+ ", taxPrice=" + taxPrice + ", amount=" + amount + ", taxAmount=" + taxAmount + ", tax=" + tax
				+ ", taxRate=" + taxRate + ", taxCode=" + taxCode + ", taxDeduction=" + taxDeduction + ", createTime="
				+ createTime + ", updateTime=" + updateTime + ", scheduledTime=" + scheduledTime + ", actualTime="
				+ actualTime + ", haveItinerary=" + haveItinerary + "]";
	}
	
	
	
	
	
	
	
	
}
